home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 021-030 / amok23 / noguru / noguru.dok < prev    next >
Text File  |  1993-11-04  |  2KB  |  42 lines

  1. :Program.       NoGuru
  2. :Author.        Volker Rudolph
  3. :Address.       Medicusstr. 31 / 6750 Kaiserslautern
  4. :Phone.         0631/17160
  5. :ShortCut.      [vor]
  6. :Support.       Bernd Preusing (DisObject)
  7. :Version.       1.2
  8. :Date.          31.7.1989
  9. :Copyright.     PD
  10. :Language.      Assembler / Modula-2
  11. :Translator.    Asm68k(PD) / M2Amiga 3.2d
  12. :Imports.       nichts !!!
  13. :Contents.      Das Modul NoGuru fängt alle Gurus ab und beendet das
  14.                 Programm sauber (Arts.Error).
  15. :Remark.        Dieses Modul sollte nicht neu kompiliert werden, da sonst
  16.                 die Modul-ID im OBJ-File nicht mehr stimmt.
  17. :Usage.         Nur importieren (IMPORT NoGuru;)
  18.  
  19. Das M2Amiga-Laufzeitsystem fängt viele Fehler wie 'Division durch
  20. Null' oder Addressfehler ab. Leider gibt es auch noch andere Gurus,
  21. nähmlich solche, die vom Betriebssystem verursacht werden. Beliebte
  22. Gurus sind z.B. Fehler in der Speicherverwaltung wie
  23. 'Memory-freed-twice' (= 81000009). NoGuru bewältigt jetzt auch solche
  24. Fehler. Die Gurunummer wird ausgegeben, das Programm wird
  25. ordnungsgemäß abgebrochen und die TermProcedures werden ausgeführt.
  26.  
  27. Wie geht das ?
  28.  
  29. NoGuru verändert den Sprungvektor von Exec.Alert, über den alle Guru-
  30. Meditations ausgegeben werden. Dieser Vektor wird auf eine eigene
  31. Routine gerichtet, die, anstatt eine Guru-Meditation zu verursachen,
  32. nur das Programm abbricht. Dieser Alert-Vektor gilt aber nicht nur für
  33. den eigenen Task, sondern auch für alle anderen die gerade laufen.
  34. Wenn nun einer von diesen Tasks abstürzen (oder mit einem
  35. Recoverable-Alert eine Fehlermeldung ausgeben) würde, würde auch in
  36. die NoGuru-Routine gesprungen. Um das zu vermeiden wird die
  37. NoGuru-Routine erst installiert, wenn der eigene Task Rechenzeit
  38. bekommt, und wenn die Rechenzeit beendet ist, wird die ursprüngliche
  39. Routine wieder eingesetzt. Durch diese Methode läuft NoGuru auch ohne
  40. Schwierigkeiten mit anderen Error-Handlern (z.B. Gomf) zusammen.
  41.  
  42.